package pe.sonrisas.tools.mysql;


import pe.sonrisas.tools.dao.PacienteDAO;
import pe.sonrisas.tools.dao.PersonaDAO;
import pe.sonrisas.tools.dao.TratamientoDAO;
import pe.sonrisas.tools.entities.*;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
// STORE PROCEDURE PARA REGISTRAR HORARIO DE ODONTOLOGO, AGREGANDO LOS CAMPOS horanInicio y horaFin a la tabla
// horarioOdontologo
public class HorarioOdontologoDAOMysql {

    Conexion_BD co = new Conexion_BD();
    ResultSet rs = null;
    CallableStatement cs;

    public void agregarHorario(horarioOdontologo nuevoHorario) {
        try {
            String query = " { CALL usp_registrar_horarioodontologo(?,?,?)}";

            co.Conectar();
            co.getCn().setAutoCommit(false);
            cs = co.getCn().prepareCall(query);

//            cs.setInt(1, nuevoHorario.getIddia());
//            cs.setString(2, nuevoHorario.getHoraInicio());
//            cs.setString(3, nuevoHorario.getHoraFin());


            cs.executeUpdate();
            co.getCn().commit();

        } catch (SQLException ex) {
            Logger.getLogger(PersonaDAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            try {
                Logger.getLogger(PacienteDAO.class.getName()).log(Level.SEVERE, null, ex);
                co.Desconectar();
            } catch (Exception ex1) {
                Logger.getLogger(PersonaDAO.class.getName()).log(Level.SEVERE, null, ex1);
            }


        }
    }
// ACA HICE UN PEQUEÑOS CAMBIOS COMO DAYOFWEEK PARA EL NUMERO DE DIA DE LA SEMEANA 
    public Vector<Vector> dameHorarioDelDia(String dia, int CMP) {

        /*
         * SELECT horaInicio,horaFin FROM horarioOdontologo h, Odontologo o
         * WHERE iddia = (SELECT DatePart(WeekDay, GetDate())) AND h.CMP =
         * (SELECT CMP from Odontologo where id = 1);
         */

        Vector<Vector> listado = new Vector<Vector>();

        try {

            co.Conectar();
            String query = ("SELECT horaInicio,horaFin FROM horarioodontologo h, Odontologo o WHERE h.iddia = (SELECT DAYOFWEEK('" + dia + "')) AND o.CMP =  " + CMP +
                            " and  h.Odontologo_id = o.id");
            System.out.println(query);
            rs = co.Consultar(query);
            if (rs.first()) {
                while (!rs.isAfterLast()) {
                    Vector item = new Vector();
                    item.add(rs.getString(1));
                    item.add(rs.getString(2));


                    //Avanza el RS
                    rs.next();
                    listado.add(item);
                }
            }

        } catch (ClassNotFoundException ex) {
            Logger.getLogger(TratamientoDAO.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(TratamientoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }

        try {
            co.Desconectar();
        } catch (Exception ex) {
            Logger.getLogger(TratamientoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        return listado;

    }
}
